// 导入提示方法
import { message } from "ant-design-vue";

export const useEditUpload = (editModel, save_swipe_image) => {
  // 上传文件改变时的状态
  const handleEditChange = (info) => {
    if (editModel.swipe_image.length === 1) {
      save_swipe_image.value.length = 2;
    }
    // 如果editModel.swipe_image存储图片的长度大于1 则让它只存第二张
    if (editModel.swipe_image.length > 1) {
      // 存储未重新赋值的图片列表
      save_swipe_image.value = editModel.swipe_image;
      // 如果图片列表中的第一张的uid和回显图片的地址不同 就存第一张图片 (回显的图片uid存放的是图片地址,所以第一张的uid和地址会相等)
      if (editModel.swipe_image[0].uid != editModel.swipe_image_src) {
        // 存图片列表中的第一张图片
        editModel.swipe_image = [editModel.swipe_image[0]];
        return;
      }
      // 存图片列表中的第二张图片
      editModel.swipe_image = [editModel.swipe_image[1]];
    }

    // 上传完成
    if (info.file.status === "done") {
      // 如果返回状态为200，代表上传成功
      if (info.file.response.code === 200) {
        // 赋值服务器返回来的地址
        editModel.swipe_image_src = info.file.response.data.filename;
        message.success("上传成功");
      }
    } else if (info.file.status === "error") {
      // 上传失败
      return message.error(`${info.file.name} file upload failed.`);
    }
  };

  // 上传文件之前的钩子
  const beforeEditUpload = () => {
    // 当上传之前没有图片时让存储图片列表长度改为1
    if (editModel.swipe_image.length === 0) {
      save_swipe_image.value.length = 1;
    }
    // 如果未重新赋值的图片列表的长度大于1 就停止上传(第一次编辑上传前是空数组，之后始终都是长度为2)
    if (save_swipe_image.value.length > 1) {
      return false;
    }
  };

  return {
    handleEditChange,
    beforeEditUpload,
  };
};
